Skip to content

Conversation

@pablogoitia
Copy link

Partially closes #2697

Check List

  • I have read CONTRIBUTING.md.
  • Contains logically grouped changes (else tidy your branch by rebase).
  • Does not contain off-topic changes (use other PRs for other changes).
  • Applied any dependency changes to pyproject.toml.
  • Tests are included (or explain why tests are not needed).
  • Changelog entry included in CHANGELOG.md if this is a change that can affect users.
  • Documentation updated.
  • If this is a bug fix, PR should include a link to the issue (e.g. Closes #1234).

@pablogoitia pablogoitia self-assigned this Nov 13, 2025
@pablogoitia pablogoitia added enhancement New feature or request working on Someone is working on it labels Nov 13, 2025
@pablogoitia pablogoitia moved this from Todo to In Progress in Autosubmit project Nov 13, 2025
@codecov-commenter
Copy link

codecov-commenter commented Nov 14, 2025

Codecov Report

❌ Patch coverage is 47.20000% with 66 lines in your changes missing coverage. Please review.
✅ Project coverage is 67.48%. Comparing base (57d5cf1) to head (8469766).
⚠️ Report is 3 commits behind head on master.

Files with missing lines Patch % Lines
...tosubmit/platforms/headers/fluxoverslurm_header.py 27.08% 35 Missing ⚠️
autosubmit/platforms/wrappers/wrapper_factory.py 30.00% 10 Missing and 4 partials ⚠️
autosubmit/platforms/wrappers/wrapper_builder.py 60.00% 12 Missing ⚠️
autosubmit/job/job.py 66.66% 1 Missing and 1 partial ⚠️
autosubmit/scripts/autosubmit.py 0.00% 1 Missing and 1 partial ⚠️
autosubmit/platforms/fluxoverslurm.py 80.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2708      +/-   ##
==========================================
- Coverage   67.70%   67.48%   -0.23%     
==========================================
  Files          86       88       +2     
  Lines       19786    19894     +108     
  Branches     3840     3860      +20     
==========================================
+ Hits        13396    13425      +29     
- Misses       5458     5533      +75     
- Partials      932      936       +4     
Flag Coverage Δ
fast-tests 67.48% <47.20%> (-0.22%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Contributor

@manuel-g-castro manuel-g-castro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall I am really happy with the implementation.

I find it very elegantly done, given the high degree of difficulty of the code base.

I made some minor comments here and there, but my major two comments regard the creation of the STAT files and a file to check if the wrapper failed in the horizontal-vertical case.

The first point could turn to be unnecessary if @kinow 's PR stops the creation of this file.

The second point is a suggestion just to avoid yet-another-file in the parallel file system.

Whenever I have time, I plan to install this branch and try the wrappers.

Thanks!

{1}
# Instantiate Flux within the allocated resources and run the jobs
srun --cpu-bind=none flux start --verbose=2 /usr/bin/bash flux_runner.sh
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be nice to add a #TODO to parametrize the verbosity of Flux.

@pablogoitia
Copy link
Author

Hi, @manuel-g-castro!

In commit 0823ab3 I introduce a new key to the Autosubmit wrapper configuration called CUSTOM_ENV_SETUP that enables to introduce the commands that the wrapper must execute to setup the remote Flux environment before calling flux start.

This new parameter is optional and can be assigned to a wrapper global or locally. That is, you can set the CUSTOM_ENV_SETUP value to the WRAPPER key and it will be applied to all the wrappers, or you can set it to a specific wrapper and will only affect it.

Here is an example:

WRAPPERS:
  WRAPPER_SIM:
    POLICY: "flexible"
    MIN_WRAPPED: 1
    MAX_WRAPPED: 6
    TYPE: "vertical"
    JOBS_IN_WRAPPER: "SIM"
    METHOD: FLUX
  CUSTOM_ENV_SETUP: |
    module load miniconda
    source /apps/GPP/MINICONDA/24.1.2/etc/profile.d/conda.sh
    conda activate flux
    conda info

I'm looking forward to know your experience loading the Spack package to see if Flux wrappers will work in any scenario.

I have also uploaded my workflow for testing vertical wrappers with the Flux method to WorkflowHub (it is private and only users under the BSC-CES organization can access it), in case you want to make a quick test.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request working on Someone is working on it

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

Wrapper engine integration

5 participants